package com.sunky.db.greendao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.sunky.db.model.EquipInfo;
import com.sunky.db.model.EquipType;
import com.sunky.db.model.UserConfig;
import com.sunky.db.model.ClassTypeBean;
import com.sunky.db.model.MainEquipBean;
import com.sunky.db.model.UserInterfaceBean;
import com.sunky.db.model.ChiperEquipInfo;
import com.sunky.db.model.CheckRecord;
import com.sunky.db.model.EquipInfoV2;

import com.sunky.db.greendao.EquipInfoDao;
import com.sunky.db.greendao.EquipTypeDao;
import com.sunky.db.greendao.UserConfigDao;
import com.sunky.db.greendao.ClassTypeBeanDao;
import com.sunky.db.greendao.MainEquipBeanDao;
import com.sunky.db.greendao.UserInterfaceBeanDao;
import com.sunky.db.greendao.ChiperEquipInfoDao;
import com.sunky.db.greendao.CheckRecordDao;
import com.sunky.db.greendao.EquipInfoV2Dao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig equipInfoDaoConfig;
    private final DaoConfig equipTypeDaoConfig;
    private final DaoConfig userConfigDaoConfig;
    private final DaoConfig classTypeBeanDaoConfig;
    private final DaoConfig mainEquipBeanDaoConfig;
    private final DaoConfig userInterfaceBeanDaoConfig;
    private final DaoConfig chiperEquipInfoDaoConfig;
    private final DaoConfig checkRecordDaoConfig;
    private final DaoConfig equipInfoV2DaoConfig;

    private final EquipInfoDao equipInfoDao;
    private final EquipTypeDao equipTypeDao;
    private final UserConfigDao userConfigDao;
    private final ClassTypeBeanDao classTypeBeanDao;
    private final MainEquipBeanDao mainEquipBeanDao;
    private final UserInterfaceBeanDao userInterfaceBeanDao;
    private final ChiperEquipInfoDao chiperEquipInfoDao;
    private final CheckRecordDao checkRecordDao;
    private final EquipInfoV2Dao equipInfoV2Dao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        equipInfoDaoConfig = daoConfigMap.get(EquipInfoDao.class).clone();
        equipInfoDaoConfig.initIdentityScope(type);

        equipTypeDaoConfig = daoConfigMap.get(EquipTypeDao.class).clone();
        equipTypeDaoConfig.initIdentityScope(type);

        userConfigDaoConfig = daoConfigMap.get(UserConfigDao.class).clone();
        userConfigDaoConfig.initIdentityScope(type);

        classTypeBeanDaoConfig = daoConfigMap.get(ClassTypeBeanDao.class).clone();
        classTypeBeanDaoConfig.initIdentityScope(type);

        mainEquipBeanDaoConfig = daoConfigMap.get(MainEquipBeanDao.class).clone();
        mainEquipBeanDaoConfig.initIdentityScope(type);

        userInterfaceBeanDaoConfig = daoConfigMap.get(UserInterfaceBeanDao.class).clone();
        userInterfaceBeanDaoConfig.initIdentityScope(type);

        chiperEquipInfoDaoConfig = daoConfigMap.get(ChiperEquipInfoDao.class).clone();
        chiperEquipInfoDaoConfig.initIdentityScope(type);

        checkRecordDaoConfig = daoConfigMap.get(CheckRecordDao.class).clone();
        checkRecordDaoConfig.initIdentityScope(type);

        equipInfoV2DaoConfig = daoConfigMap.get(EquipInfoV2Dao.class).clone();
        equipInfoV2DaoConfig.initIdentityScope(type);

        equipInfoDao = new EquipInfoDao(equipInfoDaoConfig, this);
        equipTypeDao = new EquipTypeDao(equipTypeDaoConfig, this);
        userConfigDao = new UserConfigDao(userConfigDaoConfig, this);
        classTypeBeanDao = new ClassTypeBeanDao(classTypeBeanDaoConfig, this);
        mainEquipBeanDao = new MainEquipBeanDao(mainEquipBeanDaoConfig, this);
        userInterfaceBeanDao = new UserInterfaceBeanDao(userInterfaceBeanDaoConfig, this);
        chiperEquipInfoDao = new ChiperEquipInfoDao(chiperEquipInfoDaoConfig, this);
        checkRecordDao = new CheckRecordDao(checkRecordDaoConfig, this);
        equipInfoV2Dao = new EquipInfoV2Dao(equipInfoV2DaoConfig, this);

        registerDao(EquipInfo.class, equipInfoDao);
        registerDao(EquipType.class, equipTypeDao);
        registerDao(UserConfig.class, userConfigDao);
        registerDao(ClassTypeBean.class, classTypeBeanDao);
        registerDao(MainEquipBean.class, mainEquipBeanDao);
        registerDao(UserInterfaceBean.class, userInterfaceBeanDao);
        registerDao(ChiperEquipInfo.class, chiperEquipInfoDao);
        registerDao(CheckRecord.class, checkRecordDao);
        registerDao(EquipInfoV2.class, equipInfoV2Dao);
    }
    
    public void clear() {
        equipInfoDaoConfig.clearIdentityScope();
        equipTypeDaoConfig.clearIdentityScope();
        userConfigDaoConfig.clearIdentityScope();
        classTypeBeanDaoConfig.clearIdentityScope();
        mainEquipBeanDaoConfig.clearIdentityScope();
        userInterfaceBeanDaoConfig.clearIdentityScope();
        chiperEquipInfoDaoConfig.clearIdentityScope();
        checkRecordDaoConfig.clearIdentityScope();
        equipInfoV2DaoConfig.clearIdentityScope();
    }

    public EquipInfoDao getEquipInfoDao() {
        return equipInfoDao;
    }

    public EquipTypeDao getEquipTypeDao() {
        return equipTypeDao;
    }

    public UserConfigDao getUserConfigDao() {
        return userConfigDao;
    }

    public ClassTypeBeanDao getClassTypeBeanDao() {
        return classTypeBeanDao;
    }

    public MainEquipBeanDao getMainEquipBeanDao() {
        return mainEquipBeanDao;
    }

    public UserInterfaceBeanDao getUserInterfaceBeanDao() {
        return userInterfaceBeanDao;
    }

    public ChiperEquipInfoDao getChiperEquipInfoDao() {
        return chiperEquipInfoDao;
    }

    public CheckRecordDao getCheckRecordDao() {
        return checkRecordDao;
    }

    public EquipInfoV2Dao getEquipInfoV2Dao() {
        return equipInfoV2Dao;
    }

}
